﻿using Cls_BoticasySaludBE;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Cls_BoticasySaludDA
{
    public class PedidoDA
    {
        SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["cnx"].ConnectionString);
        //SqlConnection cn = new SqlConnection("Data Source=MICHAEL-PC\SQLSERVER2008;Initial Catalog=VENTAS;User ID=sa");

        public int InsertCabPedidoDA(CabPedido CabeceraPed)
        {
            try
            {
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = cn;
                cmd.CommandType = System.Data.CommandType.StoredProcedure;
                cmd.CommandText = "InsertarCabPedido";
                cmd.Parameters.Add("@idCliente", System.Data.SqlDbType.Int).Value = CabeceraPed.idCliente;
                cmd.Parameters.Add("@Nombre", System.Data.SqlDbType.Int).Value = CabeceraPed.Nombre;
                cmd.Parameters.Add("@DNI", System.Data.SqlDbType.VarChar, 250).Value = CabeceraPed.Dni;
                cmd.Parameters.Add("@Direccion", System.Data.SqlDbType.VarChar, 250).Value = CabeceraPed.Direccion;
                cmd.Parameters.Add("@Telefono", System.Data.SqlDbType.VarChar, 250).Value = CabeceraPed.Telefono;
                cmd.Parameters.Add("@MontoTotal", System.Data.SqlDbType.Float, 20).Value = CabeceraPed.MontoTotal;
                cmd.Parameters.Add("@Latitud", System.Data.SqlDbType.Decimal).Value = CabeceraPed.Latitud;
                cmd.Parameters.Add("@Altitud", System.Data.SqlDbType.Decimal).Value = CabeceraPed.Longitud;
                cmd.Parameters.Add("@FormaPago", System.Data.SqlDbType.Int).Value = CabeceraPed.TipoPago;
                cmd.Parameters.Add("@TipoTarjeta", System.Data.SqlDbType.Int).Value = CabeceraPed.TipoTarjeta;
                cmd.Parameters.Add("@CodCabPed", System.Data.SqlDbType.Int).Direction = System.Data.ParameterDirection.Output;
                cn.Open();
                cmd.ExecuteNonQuery();
                int codigo = int.Parse(cmd.Parameters["@CodCabPed"].Value.ToString());
                return codigo;
            }
            catch (SqlException ex)
            {
                return 0;
            }

        } 
        
        public int InsertDetPedidoDA(DetPedido DetallePed,int CodigoCabPedido)
        {
            try
            {
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = cn;
                cmd.CommandType = System.Data.CommandType.StoredProcedure;
                cmd.CommandText = "InsertarDetPedido";
                cmd.Parameters.Add("@idPedido", System.Data.SqlDbType.Int).Value = CodigoCabPedido;
                cmd.Parameters.Add("@idProducto", System.Data.SqlDbType.Int).Value = DetallePed.ProductoItem;
                cmd.Parameters.Add("@Cantidad", System.Data.SqlDbType.Int).Value = DetallePed.Cantidad;
                cmd.Parameters.Add("@SubTotal", System.Data.SqlDbType.Decimal, 20).Value = DetallePed.SubTotal;
                cmd.Parameters.Add("@CodDetPed", System.Data.SqlDbType.Int).Direction = System.Data.ParameterDirection.Output;
                cn.Open();
                cmd.ExecuteNonQuery();
                int codigo = int.Parse(cmd.Parameters["@CodDetPed"].Value.ToString());
                return codigo;
            }
            catch (SqlException ex)
            {
                return 0;
            }

        }
    }
}
